Python Pandas如何获取列匹配特定值的行

您所在的位置:网站首页 python dataframe 取值 Python Pandas如何获取列匹配特定值的行

Python Pandas如何获取列匹配特定值的行

#Python Pandas如何获取列匹配特定值的行| 来源: 网络整理| 查看: 265

Python Pandas如何获取列匹配特定值的行 发布时间:2021-05-22 10:03:49 来源:亿速云 阅读:352 作者:小新 栏目:开发技术

这篇文章给大家分享的是有关Python Pandas如何获取列匹配特定值的行的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

给定一个带有列"BoolCol"的DataFrame,如何找到满足条件"BoolCol" == True的DataFrame的索引

目前有迭代的方式来做到这一点:

for i in range(100,3000):   if df.iloc[i]['BoolCol']== True:      print i,df.iloc[i]['BoolCol']

这虽然可行,但不是标准的 Pandas 方式。经过一番研究,我目前正在使用这个代码:

df[df['BoolCol'] == True].index.tolist()

这个给了我一个索引列表,但跟我想要的不匹配,当检查:

df.iloc[i]['BoolCol']

其结果实际上是False!

如何使用正确的 Pandas 方式做到这一点?

最佳解决方法

df.iloc[i]返回df的第i行。 i不引用索引标签,i是从0开始的索引。

相反,属性index返回实际的索引标签,而不是数字row-indices:

df.index[df['BoolCol'] == True].tolist()

或者等同地,

df.index[df['BoolCol']].tolist()

通过使用带有"unusual"索引的DataFrame,可以非常清楚地看到差异:

df = pd.DataFrame({'BoolCol': [True, False, False, True, True]},     index=[10,20,30,40,50]) In [53]: df Out[53]:    BoolCol 10  True 20  False 30  False 40  True 50  True [5 rows x 1 columns] In [54]: df.index[df['BoolCol']].tolist() Out[54]: [10, 40, 50]

如果你想使用索引,

In [56]: idx = df.index[df['BoolCol']] In [57]: idx Out[57]: Int64Index([10, 40, 50], dtype='int64')

那么您可以使用loc而不是iloc选择行:

In [58]: df.loc[idx] Out[58]:    BoolCol 10  True 40  True 50  True [3 rows x 1 columns]

请注意,loc也可以接受布尔数组:

In [55]: df.loc[df['BoolCol']] Out[55]:    BoolCol 10  True 40  True 50  True [3 rows x 1 columns]

如果您有一个布尔数组mask,并且需要序数索引值,则可以使用np.flatnonzero来计算它们:

In [110]: np.flatnonzero(df['BoolCol']) Out[112]: array([0, 3, 4])

使用df.iloc按顺序索引选择行:

In [113]: df.iloc[np.flatnonzero(df['BoolCol'])] Out[113]:    BoolCol 10  True 40  True 50  True python pandas

Python Pandas如何获取列匹配特定值的行

Python的优点有哪些

1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对代码格式的要求没有那么严格;2、Python属于开源的,所有人都可以看到源代码,并且可以被移植在许多平台上使用;3、Python面向对象,能够支持面向过程编程,也支持面向对象编程;4、Python是一种解释性语言,Python写的程序不需要编译成二进制代码,可以直接从源代码运行程序;5、Python功能强大,拥有的模块众多,基本能够实现所有的常见功能。

感谢各位的阅读!关于“Python Pandas如何获取列匹配特定值的行”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

推荐内容:python使用pandas和xlsxwriter读写xlsx文件

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:[email protected]进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python pandas 上一篇新闻:python如何获取等间隔的数组 下一篇新闻:mysql如何获取某个时间段每一天、每一个小时的统计数据 猜你喜欢 PHP中ProtoBuf的使用方法 keras实现tensorflow与theano相互转换的方法 如何用Android实现加载效果 PHP中堆排序的原理和应用 Android制作水平圆点加载进度条 Keras怎么实现Theano和TensorFlow切换 Python中select和selectors的用法 Unity制作俄罗斯方块游戏 怎么将tensorflow 2.0的模型转成 tf1.x 版本的pb模型 Vue使用mapState时报错的解决方法


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3